/******************************************************************************
*
*  COPYRIGHT MorningCore CO.,LTD
*
******************************************************************************/
/*****************************************************************
 * FileName:     TFT.h
 * version:      <0.0.1>
 * Purpose:      <to FFT>
* Authors:      <Huangjianhua, 2013-03-07>
 * Notes:		 <NO>
 ******************************************************************/
/******************************************************************************
*  HISTORY OF CHANGES
*******************************************************************************
*
*    <date>        <author>       <Version>        <DESCRIPTION>
*    2013-03-07    Huang Jianhua     V1.0.0       To support 16 bit-length, based on version of DEV_LTE_1761(2013-03-07)(CRID:Enh00000317)
*
******************************************************************************/
//#ifdef __cplusplus
//extern "C"{
//#endif
#ifndef TFT_H
#define TFT_H
/*-----------including external files -----------------------------*/
#include "lib_typedef_N.h"
#include "lib_arith_N.h"
//#include "DL_SRP_Const_Def.h"
#include "FFT_Coef_LookUp.h" //add, zhangyong@2011-04-26, Inc00000144
//#include <stdlib.h>
//#include <math.h>
//#include <stdio.h>
/*-----------macro declaration-------------------------------------*/
/*-----------global variable declaration---------------------------*/
/*-----------constant and type declaration-------------------------*/
/*-----------file-local variable declaration-----------------------*/
	
/*-----------Function or task prototype declaration-----------------*/
//delete by zhangyong@2011-03-15
void FFT_BitReordering_fix_SDR(cmplx_frN MidData[], uint16 FFT_Len); //add,zhangyong@2011-01-07,CRID:Enh00000063
void FFT_16_fix_SDR(cmplx_frN FFT_Data[],uint16 FFT_16_Len,uint16 FFT_16_Shift,uint8 FFTCoef_Idx); //add,zhangyong@2011-01-07,CRID:Enh00000063
void FFT_8_fix_SDR(cmplx_frN FFT_Data[],uint16 FFT_8_Len,uint16 FFT_8_Shift,uint8 FFTCoef_Idx); //add,zhangyong@2011-01-07,CRID:Enh00000063
void FFT_4_fix_SDR(cmplx_frN FFT_Data[],uint16 FFT_4_Len,uint16 FFT_4_Shift,uint8 FFTCoef_Idx); //add,zhangyong@2011-01-07,CRID:Enh00000063
void FFT_2_fix_SDR(cmplx_frN FFT_Data[],uint16 FFT_2_Len, uint16 FFT_2_Shift,uint8 FFTCoef_Idx); //add,zhangyong@2011-01-07,CRID:Enh00000063
void FFT_3_fix_SDR(cmplx_frN FFT_Data[2048],uint16 FFT_3_Len,uint16 FFT_3_Shift); //add,zhangyong@2011-01-07,CRID:Enh00000063
int FFT_Radix_2n_fix_SDR(cmplx_frN FFT_Data[],
         uint16 FFT_Len,
         uint16 FFT_Shift,
         uint8 Radix16_Num,
         uint8 Radix8_Num,
         uint8 Radix4_Num,
         uint8 Radix2_Num,
		 uint8 FFTCoef_Idx);
uint8 FFT_Radix_1536_fix_SDR(cmplx_frN FFT_Data[],
         uint16 FFT_Len,
         uint16 FFT_Shift,
         uint8 Radix16_Num,
         uint8 Radix8_Num,
         uint8 Radix4_Num,
         uint8 Radix2_Num,
		 uint8 FFTCoef_Idx);
uint8 FFT_2n_1536_fix_SDR(cmplx_frN FFT_Data[],uint16 FFT_Len,uint16 FFT_Shift,uint8 FFTCoef_Idx, uint8 FFT_Flag);
void cmplx_frN_mult_fract40_SDR(fract40 *outRe,fract40 *outIm,cmplx_frN a,cmplx_frN b);
cmplx_frN cmplx_frN_mult_fract40_frN_SDR(cmplx_frN a,cmplx_frN b,uint16 shift);
cmplx_frN FFT_Coef_fix_SDR(uint16 k, uint8 FFTCoef_Idx);
cmplx_frN CSDW16_SDR(cmplx_frN InData, int k, int shift );
#endif
//#ifdef __cplusplus
//}
//#endif













 
